/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package empresa;

import alertas.alertError;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 *
 * @author rocio
 */
@Entity
@Table(name = "datos_empresa", catalog = "lpd", schema = "")
@NamedQueries({@NamedQuery(name = "DatosEmpresa.findAll", query = "SELECT d FROM DatosEmpresa d"), @NamedQuery(name = "DatosEmpresa.findByNif", query = "SELECT d FROM DatosEmpresa d WHERE d.nif = :nif"), @NamedQuery(name = "DatosEmpresa.findByLetra", query = "SELECT d FROM DatosEmpresa d WHERE d.letra = :letra"), @NamedQuery(name = "DatosEmpresa.findByNombreEmpresa", query = "SELECT d FROM DatosEmpresa d WHERE d.nombreEmpresa = :nombreEmpresa"), @NamedQuery(name = "DatosEmpresa.findByDireccion", query = "SELECT d FROM DatosEmpresa d WHERE d.direccion = :direccion"), @NamedQuery(name = "DatosEmpresa.findByCp", query = "SELECT d FROM DatosEmpresa d WHERE d.cp = :cp"), @NamedQuery(name = "DatosEmpresa.findByLocalidad", query = "SELECT d FROM DatosEmpresa d WHERE d.localidad = :localidad"), @NamedQuery(name = "DatosEmpresa.findByProvincia", query = "SELECT d FROM DatosEmpresa d WHERE d.provincia = :provincia"), @NamedQuery(name = "DatosEmpresa.findByTelefono", query = "SELECT d FROM DatosEmpresa d WHERE d.telefono = :telefono"), @NamedQuery(name = "DatosEmpresa.findByMovil", query = "SELECT d FROM DatosEmpresa d WHERE d.movil = :movil"), @NamedQuery(name = "DatosEmpresa.findByEmail", query = "SELECT d FROM DatosEmpresa d WHERE d.email = :email"), @NamedQuery(name = "DatosEmpresa.findByNumColegiado", query = "SELECT d FROM DatosEmpresa d WHERE d.numColegiado = :numColegiado"), @NamedQuery(name = "DatosEmpresa.findByLogo", query = "SELECT d FROM DatosEmpresa d WHERE d.logo = :logo")})
public class DatosEmpresa implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "NIF")
    private Integer nif;
    @Column(name = "Letra")
    private String letra;
    @Column(name = "NombreEmpresa")
    private String nombreEmpresa;
    @Column(name = "Direccion")
    private String direccion;
    @Column(name = "CP")
    private Integer cp;
    @Column(name = "Localidad")
    private String localidad;
    @Column(name = "Provincia")
    private String provincia;
    @Column(name = "Telefono")
    private Integer telefono;
    @Column(name = "Movil")
    private Integer movil;
    @Column(name = "Email")
    private String email;
    @Column(name = "NumColegiado")
    private Integer numColegiado;
    @Column(name = "Logo")
    private String logo;

    public DatosEmpresa() {
    }

    public DatosEmpresa(Integer nif) {
        this.nif = nif;
    }
    public DatosEmpresa(String Nif, String LetraNif, String Nombre,String Direccion, String CP, String Localidad,String Provincia, String Telefono, String Movil, String Email, String NumColeg, String Logo) {
        Integer a=Integer.parseInt(Nif);
        this.nif = a;

        if(Nombre==null || Nombre.equals("")){
            alertError error=new alertError("el nombre es un campo obligatorio");
           error.setVisible(true);
        }else{this.nombreEmpresa = Nombre;}
        if (CP==null || CP.equals("")){
            alertError error=new alertError("el codigo postal es un campo obligatorio");
           error.setVisible(true);
        }else{
            a=Integer.parseInt(CP);
            this.cp = a;}
        if (Direccion==null || Direccion.equals("")){
            alertError error=new alertError("la direccion es un campo obligatorio");
           error.setVisible(true);
        }else{this.direccion = Direccion;}
         if (Email==null || Email.equals("")){
            alertError error=new alertError("el email es un campo obligatorio");
           error.setVisible(true);
        }else{this.email = Email;}

        if(Telefono==null || Telefono.equals("") ){
            this.telefono=0;
        }else{
            a=Integer.parseInt(Telefono);
            this.telefono = a; }
        if(Movil==null || Movil.equals("") ){
            this.movil=0;
        }else{
            a=Integer.parseInt(Telefono);
            this.movil = a; }
        if (LetraNif==null || LetraNif.length()!=1 || LetraNif.equals("")){
            alertError error=new alertError("la letra del dni es un campo obligatorio");
           error.setVisible(true);
        }else{this.letra = LetraNif;}
        if(Localidad==null || Localidad.equals("")){
            this.localidad = null;
        }else{this.localidad = Localidad;}
        if(NumColeg==null || NumColeg.equals("")){
            alertError error=new alertError("el numero de colegiado es un campo obligatorio");
           error.setVisible(true);
        }else{
            a=Integer.parseInt(NumColeg);
            this.numColegiado = a;}


        if (Provincia==null || Provincia.equals("")){
            alertError error=new alertError("la provincia es un campo obligatorio");
           error.setVisible(true);
        }else{this.provincia = Provincia;}


            this.logo = Logo;
    }

    public Integer getNif() {
        return nif;
    }

    public void setNif(Integer nif) {
        Integer oldNif = this.nif;
        this.nif = nif;
        changeSupport.firePropertyChange("nif", oldNif, nif);
    }

    public String getLetra() {
        return letra;
    }

    public void setLetra(String letra) {
        String oldLetra = this.letra;
        this.letra = letra;
        changeSupport.firePropertyChange("letra", oldLetra, letra);
    }

    public String getNombreEmpresa() {
        return nombreEmpresa;
    }

    public void setNombreEmpresa(String nombreEmpresa) {
        String oldNombreEmpresa = this.nombreEmpresa;
        this.nombreEmpresa = nombreEmpresa;
        changeSupport.firePropertyChange("nombreEmpresa", oldNombreEmpresa, nombreEmpresa);
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        String oldDireccion = this.direccion;
        this.direccion = direccion;
        changeSupport.firePropertyChange("direccion", oldDireccion, direccion);
    }

    public Integer getCp() {
        return cp;
    }

    public void setCp(Integer cp) {
        Integer oldCp = this.cp;
        this.cp = cp;
        changeSupport.firePropertyChange("cp", oldCp, cp);
    }

    public String getLocalidad() {
        return localidad;
    }

    public void setLocalidad(String localidad) {
        String oldLocalidad = this.localidad;
        this.localidad = localidad;
        changeSupport.firePropertyChange("localidad", oldLocalidad, localidad);
    }

    public String getProvincia() {
        return provincia;
    }

    public void setProvincia(String provincia) {
        String oldProvincia = this.provincia;
        this.provincia = provincia;
        changeSupport.firePropertyChange("provincia", oldProvincia, provincia);
    }

    public Integer getTelefono() {
        return telefono;
    }

    public void setTelefono(Integer telefono) {
        Integer oldTelefono = this.telefono;
        this.telefono = telefono;
        changeSupport.firePropertyChange("telefono", oldTelefono, telefono);
    }

    public Integer getMovil() {
        return movil;
    }

    public void setMovil(Integer movil) {
        Integer oldMovil = this.movil;
        this.movil = movil;
        changeSupport.firePropertyChange("movil", oldMovil, movil);
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        String oldEmail = this.email;
        this.email = email;
        changeSupport.firePropertyChange("email", oldEmail, email);
    }

    public Integer getNumColegiado() {
        return numColegiado;
    }

    public void setNumColegiado(Integer numColegiado) {
        Integer oldNumColegiado = this.numColegiado;
        this.numColegiado = numColegiado;
        changeSupport.firePropertyChange("numColegiado", oldNumColegiado, numColegiado);
    }

    public String getLogo() {
        return logo;
    }

    public void setLogo(String logo) {
        String oldLogo = this.logo;
        this.logo = logo;
        changeSupport.firePropertyChange("logo", oldLogo, logo);
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (nif != null ? nif.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof DatosEmpresa)) {
            return false;
        }
        DatosEmpresa other = (DatosEmpresa) object;
        if ((this.nif == null && other.nif != null) || (this.nif != null && !this.nif.equals(other.nif))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "laboratorio.DatosEmpresa[nif=" + nif + "]";
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.removePropertyChangeListener(listener);
    }

}
